AWS DataSync Agent を KVM で動かしてデータ転送してみた

AWS DataSync Agent を KVM で動かしてデータ転送してみた

ハイパーバイザーはKVM(Kernel-based Virtual Machine)です。
Clock Icon2024.10.30

はじめに

KVM(Kernel-based Virtual Machine)は、Linux カーネルに組み込まれた仮想化ソリューションです。本記事では、オンプレミス環境下で DataSync Agent を KVM 上で起動しデータ転送までを行った動作確認結果を共有します。

DataSyncOnKVM

検証環境

物理マシンで検証を実施しました。EC2 では KVM を利用できないためです。

項目 詳細
CPU AMD Ryzen 5 2400G
メモリ 16GB DDR4-2666
ストレージ Samsung SSD 250GB 850 EVO
OS Ubuntu 24.04.1 LTS

データ転送元となる NFS サーバーを用意するまでの体力がありませんでした。KVM のホストマシンを NFS サーバーにしてエクスポートしたディレクトリを転送対象としました。

KVM の導入方法は以下の記事をご参照ください。

https://dev.classmethod.jp/articles/how-to-install-and-configure-kvm-on-ubuntu2404/

DataSync Agent セットアップ

DataSync Agent イメージの準備

まず、AWS が提供する KVM 用の DataSync Agent イメージをダウンロードします。

エージェントを作成する___エージェント___DataSync___ap-northeast-1-2

リンクをコピーしてwgetコマンドでダウンロードしました。

wget https://d8vjazrbkazun.cloudfront.net/AWS-DataSync-Agent-KVM.zip
unzip AWS-DataSync-Agent-KVM.zip

ダウンロードしたイメージを確認します。展開後のイメージサイズは 1.9GB でした。

$ ls -lh
合計 2.6G
-rw-rw-r-- 1 ohmura ohmura 645M 1021 04:23 AWS-DataSync-Agent-KVM.zip
-rw-r--r-- 1 ohmura ohmura 1.9G 1020 22:00 aws-datasync-2.0.1729429015.1-x86_64.xfs.gpt.qcow2

展開したイメージを KVM の規定ディレクトリに移動します。

$ sudo mv ./aws-datasync-2.0.1729429015.1-x86_64.xfs.gpt.qcow2 /var/lib/libvirt/images

仮想マシンの作成と起動

以下のコマンドで DataSync Agent の仮想マシンを作成します。

sudo virt-install  \
--name "DataSync-Agent"  \
--description "AWS DataSync agent"  \
--ram=4096 \
--vcpus=4 \
--disk path=/var/lib/libvirt/images/aws-datasync-2.0.1729429015.1-x86_64.xfs.gpt.qcow2,bus=virtio \
--network bridge=br0 \
--graphics spice  \
--import \
--osinfo detect=on,require=off

起動させるために試行錯誤した結果、上記のコマンドで落ち着きました。実行時に表示される以下の警告は無視して問題ありませんでした。

  • osifo に関する警告
  • グラフィックスに関する警告
  • ゲストコンソールに関する警告
実行結果
WARNING  Using --osinfo generic, VM performance may suffer. Specify an accurate OS for optimal results.
WARNING  グラフィックスが要求されていますが DISPLAY 変数が設定されていません。virt-viewer を起動できません。
WARNING  ゲストのコンソールがないため、デフォルト値 --wait -1 を適用します

インストールの開始中...
ドメインを作成中...                                                        |    0 B  00:00:00

ドメインは動作中です。インストールが続いているものと思われます。
インストールが完了するまで待機しています。

# Control + C で抜ける

仮想マシンのインストールが中断されました。
ユーザーからの要求でインストールを強制終了しました

仮想マシンの起動状態を確認します。

$ sudo virsh list --all
[sudo] ohmura のパスワード:
 Id   Name             State
---------------------------------
 1    DataSync-Agent   running

DataSync Agent へコンソール接続

仮想マシンのコンソールに接続します。

$ sudo virsh console DataSync-Agent
Connected to domain 'Datasync-Agent'
Escape character is ^] (Ctrl + ])

# Enter 入力後、ユーザー名: admin パスワード: password を入力

Login to change your network configuration and other appliance settings.localhost login: admin
Password: password

ログイン後、以下のメニューが表示されます。

	AWS DataSync Activation - Configuration

	#######################################################################
	##  Currently connected network adapters:
	##
	##  eth0: 192.168.20.216
	#######################################################################

	1: Network Configuration
	2: Test Network Connectivity
	3: Test Connectivity to Self-Managed Storage
	4: View System Resource Check (1 WARNING)
	5: System Time Management
	6: Command Prompt
	7: Upload agent logs via pre-signed S3 URL

	0: Get activation key

	Press "x" to exit session

        Enter command:

ここまで確認できれば、ひとまず仮想マシンとして DataSync Agent の立ち上げに成功です。

DataSync Agent の各種テスト

DataSync Agent の正常性を確認するため、以下のテストを実施します。

  • ネットワーク接続テスト
  • ストレージ接続テスト
  • システムリソースチェック

これらのテストで、AWS サービスとの通信や、仮想マシンに割当てたシステムリソースの確保状況を確認できます。

ネットワーク接続テスト

DataSync Agent の設定画面から2: Test Network Connectivityを実行します。

パブリックエンドポイントを選択し、ap-northeast-1 リージョンを指定してテストしパスしました。

ネットワークテスト結果
	AWS DataSync Activation - Test Network Connectivity

	Choose the service endpoint type that this agent will connect to:

	1: Public endpoints
	2: FIPS endpoints
	3: VPC Endpoints using AWS PrivateLink

	Press "x" to exit

	Select service endpoint type or exit: 1

	Enter AWS Region (e.g. us-east-1): ap-northeast-1

	Connectivity Test Results - PUBLIC endpoints

	> d3dvvaliwoko8h.cloudfront.net:443
	 [ SSL TEST: PASSED ]
	 [ NETWORK TEST: PASSED ]
	> activation.datasync.ap-northeast-1.amazonaws.com:443
	 [ SSL TEST: PASSED ]
	 [ NETWORK TEST: PASSED ]
	> cp.datasync.ap-northeast-1.amazonaws.com:443
	 [ SSL TEST: PASSED ]
	 [ NETWORK TEST: PASSED ]
	> datasync.ap-northeast-1.amazonaws.com:443
	 [ SSL TEST: PASSED ]
	 [ NETWORK TEST: PASSED ]
	> datasync-updates-ap-northeast-1.s3.ap-northeast-1.amazonaws.com:443
	 [ SSL TEST: PASSED ]
	 [ NETWORK TEST: PASSED ]
	> amazonlinux-2-repos-ap-northeast-1.s3.ap-northeast-1.amazonaws.com:443
	 [ SSL TEST: PASSED ]
	 [ NETWORK TEST: PASSED ]
	> amazonlinux-2-repos-ap-northeast-1.s3.dualstack.ap-northeast-1.amazonaws.com:443
	 [ SSL TEST: PASSED ]
	 [ NETWORK TEST: PASSED ]
	> 54.201.223.107(SUPPORT_CHANNEL_ENDPOINT):22
	 [ NETWORK TEST: PASSED ]

	Press return to continue

ストレージ接続テスト

DataSync Agent の設定画面から3: Test Connectivity to Self-Managed Storageを実行します。

NFS サーバーを指定し、NFS サーバーの IP アドレスを入力してテストしパスしました。

ストレージ接続テスト結果
	AWS DataSync - Test Connectivity to Self-Managed Storage

	Choose the location type for the connectivity test:

	1: NFS server
	2: SMB server
	3: Object storage
	4: HDFS
	5: Azure Blob

	Press "x" to exit

	Select location type or exit: 1

	IPv4 or NFS server name: 192.168.20.221

	Connectivity Test Results

	> 192.168.20.221:2049
	 [ PASSED ]

	Press return to continue

システムリソースチェック

DataSync Agent の設定画面から4: View System Resource Checkを実行します。

検証機では必要スペックを満たせていません。本番環境では推奨スペックでの利用を推奨します。

	AWS DataSync Activation - System Resource Check Results

	Last Checked at 2024-10-28 05:45:26 +0000

		[ OK ] CPU Cores Check
		[ OK ] Disk Size Check
		[WARN] RAM Check: Detected 4 GiB of memory (32 GiB required for up to 20 million file transfers, 64 GiB required for more than 20 million file transfers)
		[ OK ] CPU Flags Check

        Press Return to Continue

DataSync Agent のアクティベーション

マネージメントコンソールから DataSync サービスを開いている端末が、ローカルネットワーク経由で DataSync Agent の80 番ポートへアクセスできる場合のアクティベーション方法を試してみます。

DataSyncActivate

アクティベーション

「エージェントを作成する」を選択し、ハイパーバイザーは KVM を選択します。今回の DataSync Agent はインターネット経由でデータ転送するため、パブリックエンドポイントを選択します。

このマネージメントコンソールを開いている端末がローカルネットワークで DataSync Agent の 80 番ポートにアクセスできる場合は、今回の方法でアクティベートが可能です。エージェントのアドレスに DataSync Agent のプライベート IP を入力します。

エージェントを作成する___エージェント___DataSync___ap-northeast-1-3

すると、DataSync Agent からアクティベーションキーを自動的に取得してくれます。エージェント名の入力と、必要に応じてタグを設定し、「エージェントを作成」をクリックします。

Cursor_と_エージェントを作成する___エージェント___DataSync___ap-northeast-1-2

アクティベーションが成功すると、エージェントのステータスが「オンライン」と表示されます。

agent-03e4f730af2415ea4___エージェント___DataSync___ap-northeast-1

データ転送動作確認

DataSync Agent のアクティベーションが完了したので、実際のデータ転送プロセスを通じて DataSync の動作確認を行います。通常の DataSync のタスク作成手順と同じです。簡単に触れます。

DataSync コンソールで「タスクの作成」を選択します。

ソースロケーションとして、先ほどアクティベートしたエージェントと転送元のストレージ(NFS サーバー)を指定します。

loc-04ed8cabaa6a67438_を編集する___loc-04ed8cabaa6a67438___ロケーション___DataSync___ap-northeast-1_

オンプレミスの NFS サーバーから S3 へ転送するタスクを作成し、タスクを実行しました。データ転送は正常終了しました。

exec-0e5819538fb06c435___OnpremisesToS3___履歴___DataSync___ap-northeast-1

S3 バケットを確認し、データが正しく転送されていることを確認しました。

Cursor_と_efs-to-s3-by-datasync_-_S3_バケット___S3___ap-northeast-1

推奨スペックを満たさないメモリ割当の DataSync Agent てでしたが、約 650MB のデータ転送は問題なくできました。

まとめ

  • KVM による仮想化で DataSync Agent の動作確認をしました
    • KVM 上で DataSync Agent の起動の確認
    • DataSync Agent を利用したデータ転送の確認
  • 本番環境では必ず推奨スペックを満たす構成を用意してください

おわりに

久々に KVM と、NFS サーバーの設定をして良い復習の機会となりました。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.